/**
 * 全局通用类型定义
 * 包含分页、响应格式等通用类型
 */

/** 通用分页结果类型 */
export interface PageResult<T> {
  /** 列表数据 */
  records: T[];
  /** 总条数 */
  total: number;
  /** 当前页数 */
  current: number;
  /** 总页数 */
  pages: number;
  /** 每页条数 */
  size: number;
}

/** 通用分页参数类型 */
export interface PageParams {
  /** 页码：默认值为 1 */
  current: number;
  /** 页大小：默认值为 10 */
  size: number;
}

/** 普通结果 */
export interface CommonResult {
  data: string;
}

/** 普通布尔结果 */
export interface CommonBooleanResult {
  data: boolean;
}

/**
 * 响应数据格式，这个是后端定义的接口响应数据格式
 * @description 响应数据格式，包含状态码、提示信息、数据
 * @template T - 数据类型
 */
export interface Data<T> {
  /**
   * 状态码：
   * 成功标记 0
   * 失败标记 1
   */
  code: number;
  /**
   * 提示信息
   */
  msg: string;
  /**
   * 数据，格式是一个范型，可以是任意类型
   */
  data: T;
}

/** 文件类型 */
export interface FileType {
  url: string;
  extname: string;
  name: string;
}
